package com.wxk.lambda.syntax;

import com.wxk.lambda.interfaces.LambdaSingleReturnSingleParameter;

/**
 * wxk
 */
public class Syntax3 {

    public static void main(String[] args) {
        // 方法引用：
        // 可以快速的讲一个Lambda表达式指向一个已实现的方法
        // 语法：方法的隶属者 :: 方法名
        LambdaSingleReturnSingleParameter lambda1 = a -> change(a);
        int ret1 = lambda1.test(100);
        System.out.println("lambda1:ret1=" + ret1);


        // 注意：
        // 1.参数的数量和类型一定要和接口中定义的方法一致
        // 2.返回值的类型一定要和接口中定义的方法一致

        // 方法引用：引用了change方法的实现
        LambdaSingleReturnSingleParameter lambda2 = Syntax3::change;
        int ret2 = lambda2.test(100);
        System.out.println("lambda2:ret2=" + ret2);

    }


    // 方法
    private static int change(int a) {
        return a * 2;
    }


}
